Common interface that should be implemented by clients that interact with the underlying store and are capable of managing tasks and schedules.
The interfaces follow an object-oriented structure with type-erased trait objects that allow operations on specific items. While in general less efficient, this structure allows for an ergonomic API and it's easy to implement graph-like APIs over it (like GraphQL).